@@ -11,6 +11,7 @@ from django.contrib.auth.hashers import make_password  | 
            ||
| 11 | 11 | 
                from django.db import transaction  | 
            
| 12 | 12 | 
                from django.db.models import Count, Q, Sum  | 
            
| 13 | 13 | 
                from django_logit import logit  | 
            
| 14 | 
                +from django_query import get_query_value  | 
            |
| 14 | 15 | 
                from django_response import response  | 
            
| 15 | 16 | 
                from paginator import pagination  | 
            
| 16 | 17 | 
                from pysnippets.strsnippets import strip  | 
            
                @@ -22,11 +23,12 @@ from coupon.models import CouponInfo, UserCouponInfo  | 
            ||
| 22 | 23 | 
                from integral.models import SaleclerkSubmitLogInfo  | 
            
| 23 | 24 | 
                from logs.models import AdministratorLoginLogInfo, ComplementCodeLogInfo, MchInfoEncryptLogInfo  | 
            
| 24 | 25 | 
                from mch.models import AdministratorInfo, BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo  | 
            
| 25 | 
                -from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityGroupShareInfo, MemberActivityInfo,  | 
            |
| 26 | 
                - MemberActivitySignupInfo)  | 
            |
| 26 | 
                +from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityContributionInfo, MemberActivityGroupShareInfo,  | 
            |
| 27 | 
                + MemberActivityInfo, MemberActivitySignupInfo)  | 
            |
| 27 | 28 | 
                from pre.custom_message import sendtemplatemessage, sendwxasubscribemessage  | 
            
| 28 | 29 | 
                from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo  | 
            
| 29 | 
                -from utils.error.errno_utils import (AdministratorStatusCode, ComplementCodeStatusCode, ProductBrandStatusCode,  | 
            |
| 30 | 
                +from utils.error.errno_utils import (AdministratorStatusCode, ComplementCodeStatusCode,  | 
            |
| 31 | 
                + MemberActivityContributionStatusCode, ProductBrandStatusCode,  | 
            |
| 30 | 32 | 
                ProductCouponStatusCode, ProductMachineStatusCode, UserStatusCode)  | 
            
| 31 | 33 | 
                 | 
            
| 32 | 34 | 
                 | 
            
                @@ -1204,6 +1206,58 @@ def member_activity_register_list(request):  | 
            ||
| 1204 | 1206 | 
                })  | 
            
| 1205 | 1207 | 
                 | 
            
| 1206 | 1208 | 
                 | 
            
| 1209 | 
                +@transaction.atomic  | 
            |
| 1210 | 
                +def member_activity_contribute_audit(request):  | 
            |
| 1211 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 1212 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 1213 | 
                +    contribution_id = request.POST.get('contribution_id', '')
               | 
            |
| 1214 | 
                + audit = get_query_value(request, 'audit', val_cast_type='int')  | 
            |
| 1215 | 
                +  | 
            |
| 1216 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 1217 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 1218 | 
                +  | 
            |
| 1219 | 
                + try:  | 
            |
| 1220 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 1221 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 1222 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 1223 | 
                +  | 
            |
| 1224 | 
                + try:  | 
            |
| 1225 | 
                + contribution = MemberActivityContributionInfo.objects.select_for_update().get(contribution_id=contribution_id, status=True)  | 
            |
| 1226 | 
                + except MemberActivityContributionInfo.DoesNotExist:  | 
            |
| 1227 | 
                + return response(MemberActivityContributionStatusCode.ACTIVITY_CONTRIBUTION_NOT_FOUND)  | 
            |
| 1228 | 
                +  | 
            |
| 1229 | 
                + contribution.is_audit_pass = audit  | 
            |
| 1230 | 
                + contribution.save()  | 
            |
| 1231 | 
                +  | 
            |
| 1232 | 
                + return response(200, 'Member Activity Contribution Audit Success', u'会员活动投稿审批成功')  | 
            |
| 1233 | 
                +  | 
            |
| 1234 | 
                +  | 
            |
| 1235 | 
                +@transaction.atomic  | 
            |
| 1236 | 
                +def member_activity_contribute_selected(request):  | 
            |
| 1237 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 1238 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 1239 | 
                +    contribution_id = request.POST.get('contribution_id', '')
               | 
            |
| 1240 | 
                + selected = get_query_value(request, 'selected', val_cast_type='int')  | 
            |
| 1241 | 
                +  | 
            |
| 1242 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 1243 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 1244 | 
                +  | 
            |
| 1245 | 
                + try:  | 
            |
| 1246 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 1247 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 1248 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 1249 | 
                +  | 
            |
| 1250 | 
                + try:  | 
            |
| 1251 | 
                + contribution = MemberActivityContributionInfo.objects.select_for_update().get(contribution_id=contribution_id, status=True)  | 
            |
| 1252 | 
                + except MemberActivityContributionInfo.DoesNotExist:  | 
            |
| 1253 | 
                + return response(MemberActivityContributionStatusCode.ACTIVITY_CONTRIBUTION_NOT_FOUND)  | 
            |
| 1254 | 
                +  | 
            |
| 1255 | 
                + contribution.is_selected = selected  | 
            |
| 1256 | 
                + contribution.save()  | 
            |
| 1257 | 
                +  | 
            |
| 1258 | 
                + return response(200, 'Member Activity Contribution Selected Success', u'会员活动投稿入围成功')  | 
            |
| 1259 | 
                +  | 
            |
| 1260 | 
                +  | 
            |
| 1207 | 1261 | 
                def coupon_list(request):  | 
            
| 1208 | 1262 | 
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
| 1209 | 1263 | 
                     admin_id = request.POST.get('admin_id', '')
               | 
            
                @@ -171,6 +171,10 @@ urlpatterns += [  | 
            ||
| 171 | 171 | 
                url(r'^admin/member/activity/share/list$', admin_views.member_activity_share_list, name='member_activity_share_list'),  | 
            
| 172 | 172 | 
                url(r'^admin/member/activity/register/list$', admin_views.member_activity_register_list, name='member_activity_register_list'),  | 
            
| 173 | 173 | 
                 | 
            
| 174 | 
                + url(r'^admin/member/activity/contribute/list$', member_views.activity_contribute_list, name='admin_member_activity_contribute_list'),  | 
            |
| 175 | 
                + url(r'^admin/member/activity/contribute/audit$', admin_views.member_activity_contribute_audit, name='admin_member_activity_contribute_audit'),  | 
            |
| 176 | 
                + url(r'^admin/member/activity/contribute/selected$', admin_views.member_activity_contribute_selected, name='admin_member_activity_contribute_selected'),  | 
            |
| 177 | 
                +  | 
            |
| 174 | 178 | 
                url(r'^admin/coupon/list$', admin_views.coupon_list, name='coupon_list'),  | 
            
| 175 | 179 | 
                url(r'^admin/coupon/details$', admin_views.coupon_details, name='coupon_update'),  | 
            
| 176 | 180 | 
                url(r'^admin/coupon/create$', admin_views.coupon_create, name='coupon_create'),  | 
            
                @@ -1,3 +1,4 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 1 | 2 | 
                # Generated by Django 3.2.16 on 2022-10-23 12:10  | 
            
| 2 | 3 | 
                 | 
            
| 3 | 4 | 
                from django.db import migrations, models  | 
            
                @@ -667,8 +667,8 @@ class MemberActivityGroupShareInfo(BaseModelMixin):  | 
            ||
| 667 | 667 | 
                class MemberActivityContributionInfo(BaseModelMixin):  | 
            
| 668 | 668 | 
                CONTENT_TYPE = (  | 
            
| 669 | 669 | 
                (0, u'投稿'),  | 
            
| 670 | 
                - (1, u'入围'),  | 
            |
| 671 | 
                - (2, u'创作日记'),  | 
            |
| 670 | 
                + (1, u'创作日记'),  | 
            |
| 671 | 
                + # (2, u'入围'),  | 
            |
| 672 | 672 | 
                )  | 
            
| 673 | 673 | 
                 | 
            
| 674 | 674 | 
                brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)  |